$(function(){
	$("#browser").treeview();
	// 点击某项时应做相应的选择或取消上下级的操作
    $("[class=tree_cb]").click(function(){
    	var checkedValue = this.checked; // 当前复选框的选中状态
    	if(checkedValue){// 选中一个权限时
			// 应该选中他的所有直系上级
			$(this).parent().parents("li").children("[class=tree_cb]").attr("checked", true);
			// 应该选中他的所有直系下级
			$(this).parent().find("li>[class=tree_cb]").attr("checked", true);
		}else{
			// 取消选择一个权限时：应该取消选择 他的所有直系下级
			$(this).parent().find("li>[class=tree_cb]").attr("checked", false);
			// 如果我是把最后一个选项取消了，则上级也取消
			if( $(this).parent().siblings("li").children("[class=tree_cb]:checked").size() == 0 ){
				$(this).parent().parent().siblings("[class=tree_cb]").attr("checked", false);
				// 如果我是第3级，则还需要判断上级的上级是否需要取消
				if( $(this).parent().parent().parent().siblings("li").children("[class=tree_cb]:checked").size() == 0 ){
					$(this).parent().parent().parent().parent().siblings("[class=tree_cb]").attr("checked", false);
				}
			}
		}
    });
});
function treeAllChecked(){
	$('input.tree_cb').attr("checked","checked");
	collapsable();
}

function treeAllNoChecked(){
	$('input.tree_cb').removeAttr("checked");
	collapsable();
}

function collapsable(){
	var objs = $('div.lastExpandable-hitarea');
	if(objs.length > 0){
		for(var i=0;i<objs.length;i++){
			$(objs[i]).removeClass('lastExpandable-hitarea');
		    $(objs[i]).addClass('lastCollapsable-hitarea');
		}
	}
	objs = $('div.expandable-hitarea');
	if(objs.length > 0){
		for(var j=0;j<objs.length;j++){
			$(objs[j]).removeClass('expandable-hitarea');
		    $(objs[j]).addClass('collapsable-hitarea');
		}
	}
	objs = $('li.expandable');
	if(objs.length > 0){
		for(var l=0;l<objs.length;l++){
			$(objs[l]).removeClass('expandable');
		    $(objs[l]).addClass('collapsable');
		}
	}
	objs = $('li.lastExpandable');
	if(objs.length > 0){
		for(var l=0;l<objs.length;l++){
			$(objs[l]).removeClass('lastExpandable');
		    $(objs[l]).addClass('lastCollapsable');
		}
	}
	var uls = $('#browser').find('ul');
	if(uls.length > 0){
		for(var k=0;k<uls.length;k++)
			$(uls[k]).css('display','block');
	}
}
function expandable(){
	var objs = $('div.lastCollapsable-hitarea');
	if(objs.length > 0){
		for(var i=0;i<objs.length;i++){
			$(objs[i]).removeClass('lastCollapsable-hitarea');
		    $(objs[i]).addClass('lastExpandable-hitarea');
		}
	}
	objs = $('div.collapsable-hitarea');
	if(objs.length > 0){
		for(var j=0;j<objs.length;j++)
		    $(objs[j]).addClass('expandable-hitarea');
			$(objs[j]).removeClass('collapsable-hitarea');
	}
	objs = $('li.collapsable');
	if(objs.length > 0){
		for(var l=0;l<objs.length;l++){
			$(objs[l]).removeClass('collapsable');
		    $(objs[l]).addClass('expandable');
		}
	}
	objs = $('li.lastCollapsable');
	if(objs.length > 0){
		for(var l=0;l<objs.length;l++){
			$(objs[l]).removeClass('lastCollapsable');
		    $(objs[l]).addClass('lastExpandable');
		}
	}
	var uls = $('#browser').find('ul');
	if(uls.length > 0){
		for(var k=0;k<uls.length;k++){
			$(uls[k]).css('display','none');
		}
	}
}